package app.biz.service.aggregate;

import app.biz.model.ClientInfo;
import app.biz.model.EcgRequest;
import com.alibaba.fastjson.JSONObject;

import java.io.IOException;

/** Created by shadowedge on 2018/11/24. */
public interface EcgResultService {
  /**
   * 异步保存请求内容和结果，便于后续追溯
   * @param ecgRequest
   * @param result
   */
  void saveRequestAndResultAsync(EcgRequest ecgRequest, JSONObject result);

  // 保存结果时补充客户端IP信息，用于后续统计等处理
  void saveRequestAndResultAsync(EcgRequest ecgRequest, JSONObject result, ClientInfo clientInfo);

  /**
   * 获取远程服务结果
   * @param ecgRequest */
  @Deprecated
  JSONObject getRemoteResult(EcgRequest ecgRequest);

  JSONObject getRemoteResult(EcgRequest ecgRequest,  ClientInfo clientInfo);

  /**
   * 异步获取ECG服务结果并保存
   *
   * @param ecgRequest
   * @return
   */
  void getRemoteResultAsyncAndSave(EcgRequest ecgRequest);

  void getRemoteResultAsyncAndSave(EcgRequest ecgRequest, ClientInfo clientInfo);

  /**
   * 更新反馈结果
   * @param feedback
   */
  void updateFeedback(JSONObject feedback);

  /**
   * 根据sid查询解析结果
   *
   * @param sid
   * @return
   */
   JSONObject findResultBySid(long sid);
}
